/* -------------------------------------------------------------------------- *
   TestWinUnit - Maria Blees (maria.blees@microsoft.com)

   File: MockTestContainer.h
   This file/class are used in place of TestModule for testing the TestRunner
   class.
 * -------------------------------------------------------------------------- */

#pragma once

#include "TestContainer.h"

class MockTestContainer : public WinUnitLib::TestContainer
{
private:
    char* _tests[3];
    unsigned int _next;
public:
    MockTestContainer(char* test1, char* test2 = NULL, char* test3 = NULL);

public:
    /// Get the first test among those being enumerated.
    /// @return false if none.
    virtual bool GetFirst(WinUnitLib::TestIdentifier&);

    /// Get the next test among those being enumerated.
    /// @return false if no more.
    virtual bool GetNext(WinUnitLib::TestIdentifier&);

    /// Execute the given test and put output (if any) in the provided buffer.
    /// @return true if test succeeds.
    /// @remarks Buffer is ignored by caller if return value is true.
    virtual bool ExecuteTest(
        const WinUnitLib::TestIdentifier& testIdentifier,
        wchar_t* buffer, 
        size_t cchBuffer);
};